package org.lstt.ExcelReader;

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;

/**
 * 字符串单元格阅读器
 * 
 * @author tluo
 *
 */
public class StringCellReader implements CellReader<String> {
	private final DecimalFormat decimalF = new DecimalFormat("#.##");
	private final SimpleDateFormat dateF = new SimpleDateFormat(
			"yyyy-MM-dd HH:mm:ss");

	@Override
	public String readCell(Cell cell) {
		if (null == cell) {
			return "";
		}
		switch (cell.getCellTypeEnum()) {
		case NUMERIC: // 0-数值类型
			if (DateUtil.isCellDateFormatted(cell)) {
				return dateF.format(cell.getDateCellValue());
			} else {
				return decimalF.format(cell.getNumericCellValue());
			}
		case _NONE: // -1-未知类型
			return "Unknown";
		case BLANK: // 3- 空值
			return "";
		case ERROR:// 5-错误类型
			return "Bad value!";
		default:// 1- 字符串型 ， 2-公式型 4- 布尔型
			return cell.getStringCellValue().trim();
		}
	}
}
